# 使用 Maven 镜像构建
FROM maven:3.8.4-openjdk-8-slim AS builder

# 设置工作目录
WORKDIR /build

# 配置 Maven 镜像源
COPY settings.xml /root/.m2/settings.xml

# 复制 pom.xml
COPY pom.xml .

# 下载依赖（添加更多日志输出）
RUN mvn -X dependency:go-offline -DskipTests || (echo "Failed to download dependencies" && exit 1)

# 复制源代码
COPY src ./src

# 构建应用（添加更多日志输出）
RUN mvn -X clean package -DskipTests \
    && echo "Build complete" \
    || (echo "Failed to build application" && exit 1)

# 使用 JRE 运行
FROM openjdk:8-jre-slim

# 安装基本工具
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
    curl \
    && rm -rf /var/lib/apt/lists/*

# 设置工作目录
WORKDIR /app

# 从构建阶段复制 jar 文件
COPY --from=builder /build/target/doudizhu-1.0-SNAPSHOT.jar app.jar

# 创建启动脚本
RUN echo '#!/bin/sh\njava $JAVA_OPTS -jar app.jar' > /docker-entrypoint.sh \
    && chmod +x /docker-entrypoint.sh

# 暴露端口
EXPOSE 8080

# 设置环境变量
ENV JAVA_OPTS="-Xmx512m -Xms256m"

# 健康检查
HEALTHCHECK --interval=30s --timeout=3s \
  CMD curl -f http://localhost:8080/actuator/health || exit 1

# 启动命令
ENTRYPOINT ["/docker-entrypoint.sh"] 